// 定义一个toast方法(消息提示框)，在参数中对传入的参数进行解构
/**
 * @description 封装消息提示组件
 * @param {*} title 提示的内容
 * @param {*} icon 图标
 * @param {*} duration 提示的延迟时间
 * @param {*} mask 是否显示透明蒙层，防止触摸穿透
 */
const toast = ({title = '数据加载中', icon = 'none', mask = true, duration = 3000}={})=>{
    wx.showToast({
      title,
      icon,
      mask,
      duration
    })
}

// 将toast方法挂载到wx对象上，方便在页面中使用
wx.toast = toast

// 注意如果要让挂载的方法在页面中使用，需要在页面中调用一下wx.toast方法，即导入该js文件，否则无法使用。

//封装一个model方法（模态对话框）
//为了便于后面的网络请求封装，用promise来接受返回的操作
const model = (options= {})=>{
    return new Promise((resolve)=>{
      // 默认的参数
      const defaultOpt = {
        title: '提示',
        content: '您确定执行该操作吗?',
        confirmColor: '#f3514f'
      }
//利用object.assign()方法，将默认参数和传入的参数进行合并，如果传入的参数有相同的属性，则覆盖默认参数的属性
      const opts = Object.assign({}, defaultOpt, options)
      
      wx.showModal({
        ...opts,
        complete({ confirm , cancel }){
          confirm && resolve(true),
          cancel && resolve(false)
        }
      })
    })
}
wx.model = model